package com.lyc.config;

import com.lyc.interceptors.LoginIntercollegiate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Autowired
    private LoginIntercollegiate intercollegiate;
    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //登录和注册不需要拦截
        registry.addInterceptor(intercollegiate)
                .excludePathPatterns("/user/login",
                        "/user/register",
                        "/register/avatar",
                        "/uploads/**",            // 排除所有上传的静态资源
                        "/css/**",               // CSS资源
                        "/js/**",                // JavaScript资源
                        "/images/**",            // 图片资源
                        "/favicon.ico"           // 网站图标
                );
                // 排除OPTIONS请求，确保预检请求能够通过
//                .excludePathPatterns("/admin/**")
//                .excludePathPatterns("/user/**")
//                .excludePathPatterns("/post/**")
//                .excludePathPatterns("/comments/**")
//                .excludePathPatterns("/Internships/**");
    }

    //跨域
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(true)
                .maxAge(3600); // 预检请求缓存时间
    }
}